package com.jl.mapper;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jl.model.KeyWord;
import com.jl.model.in.KeyWordIn;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 故障关键词表 Mapper 接口
 * </p>
 *
 * @author JiangJian
 * @since 2019-03-06
 */
public interface KeyWordMapper extends BaseMapper<KeyWord> {


    /**
     * 查询设关键词列表
     * 这里的Param中必须使用 ew为名称 这是因为使用了mybatisplus中的内定的参数
     * 且在xml中必须是使用 美元符 $ 来作为占位符
     * @param page
     * @param qw
     * @return
     */
    List<Map<String,Object>> selectDataGrid(Page<Map<String,Object>> page, @Param("ew") QueryWrapper<KeyWord> qw);

    /**
     *
     * @param name 关键词
     * @return 结果数量
     */
    Integer selectKeyWordNameCount(@Param("name") String name);

    KeyWordIn selectKeyWordInByName(@Param("name") String name);

    /**
     * 修改关键词的绑定次数
     * @param id 关键词id
     * @param count 修改数量
     * @return 操作结果
     */
    Integer updateKeyWordBindCount(@Param("id") Long id,@Param("count") Integer count);

    /**
     * 批量修改关键词的绑定次数
     * @param ids 关键词列表
     * @param count 修改数量
     * @return 操作结果
     */
    Integer updateKeyWordBindCountWithIds(@Param("ids") List<Long>ids,@Param("count") Integer count);


    /**
     * 获得前出现关键词
     * @param top 前多少
     * @param startTime 起始时间
     * @param endTime  结束时间
     * @return 故障设备信息
     */
    List<Map<String,Object>> selectTopKeyWord(@Param("top") Integer top,@Param("startTime") String startTime,@Param("endTime") String endTime);

}
